from flask import Flask
import os
from house.settings import Config
from house.models import db
from house.index_page import index_page
from house.detail_page import detail_page
from house.list_page import list_page  # 导入列表页蓝图

def create_app():
    # 获取项目根目录（PythonProject目录）
    base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    template_dir = os.path.join(base_dir, 'templates')
    static_dir = os.path.join(base_dir, 'static')

    print(f"模板目录: {template_dir}")
    print(f"静态文件目录: {static_dir}")

    # 检查目录是否存在
    if not os.path.exists(template_dir):
        raise Exception(f"模板目录不存在: {template_dir}")
    if not os.path.exists(static_dir):
        raise Exception(f"静态文件目录不存在: {static_dir}")

    # 初始化 Flask 应用并指定模板和静态文件目录
    app = Flask(__name__,
                template_folder=template_dir,
                static_folder=static_dir)

    # 加载配置
    app.config.from_object(Config)

    # 初始化数据库
    db.init_app(app)

    # 注册路由蓝图
    app.register_blueprint(index_page, url_prefix='/')
    app.register_blueprint(detail_page)
    app.register_blueprint(list_page)  # 注册列表页蓝图

    return app

if __name__ == '__main__':
    app = create_app()
    app.run(debug=True)
